<?php
/**
 * Description of listadorArchivos
 *
 * @author Karlitos
 */
class ListadorArchivos {
   
   private $_path;
   private $_files;
   private $_order;
   private $_pathAbsoluto;
   
   function ListadoArchivos($path,$files,$order) {
       $this->_path = !isset($path)? './' :$path;
       $this->_files = !isset($files)? '\w{3,4}' : '(' . implode(')|(', explode('@',$files)) . ')';
       $this->_order = !isset($order) ? 'name' : $order;
   }
   
   function __construct($path,$pathAbsoluto,$files = '', $order='') {
       
       $this->_path = !isset($path)? './' :$path;
       $this->_files = !isset($files)? '\w{3,4}' : '(' . implode(')|(', explode('@',$files)) . ')';
       $this->_order = !isset($order) ? 'name' : $order;
       $this->_pathAbsoluto = !isset($pathAbsoluto)? './' :$pathAbsoluto;
   }

   
   function listarArchivos() {

       //---Arreglo donde se guardarán todos los archivos
       $store = array();
       
       //---Regular Expression
       $reg = '/\w*+.+'. $this->_files .'$/';

       $sum = 0;

       //---Si es un directorio
       if(is_dir($this->_path)){
          //---Abrir el directorio
          if($gd = opendir($this->_path)){
             //---Recorrer todos los archivos del directorio
             while(($archivo = readdir($gd)) !== false){
                 
                //---Si se cumple la expresión regular
                if(preg_match($reg, $archivo) && !is_dir($archivo)){
                   //---Guardar todos los datos en el arreglo tomando como index la fecha
                   //$date = filemtime(strpos($this->_path, '/') ? $this->_path . $archivo : $this->_path . '/' . $archivo);
                   
                    //$file = !strpos($this->_pathAbsoluto, '/') ? $this->_pathAbsoluto . $archivo : $this->_pathAbsoluto . '/' . $archivo;
                    //$date = filemtime($file); 
                    $store['_' . $sum] = $archivo;
                   $sum++;
                }

             }

          }

       }

       //---Organizar el arreglo
       if($this->_order == 'name'){
           natcasesor($store);
       }else{
          ksort($store);
       }
       return $store;
   }
   
   public function getPath() {
       return $this->_path;
   }

   public function setPath($path) {
       $this->_path = $path;
   }

   public function getFiles() {
       return $this->_files;
   }

   public function setFiles($files) {
       $this->_files = $files;
   }

   public function getOrder() {
       return $this->_order;
   }

   public function setOrder($order) {
       $this->_order = $order;
   }


}
